<template>
  <div class="app-container">
    <!--    <el-button type="primary" @click="handleDown()">批量下载</el-button>-->
    <el-form style="float: right" :inline="true" :model="formSearch" class="demo-form-inline">
      <el-form-item prop="areaSelect1">
        <area-select
          ref="areaselect"
          :area-num="formSearch.provCode"
          :area-name="formSearch.provName"
          :city-num="formSearch.cityCode"
          placeholder="请选择企业注册地"
          @getAreaSelect="getAreaSelect2"
        />
      </el-form-item>
      <el-form-item>
        <el-button v-loading.fullscreen.lock="fullscreenLoading" type="primary" @click="dowmloadExcel()">查询</el-button>
        <el-button type="primary" @click="searchReset()">重置</el-button>
      </el-form-item>
    </el-form>
    <div><download-excel
      ref="downloadBtn"
      :data="json_data"
      :fields="json_fields"
      name="用户统计列表"
    >
      <el-button>导出Excel</el-button>
    </download-excel></div>
  </div>
</template>

<script>
import { questionnaireList } from '@/api/ent'
import { mapGetters } from 'vuex'
import AreaSelect from '@/components/AreaSelect'
import { getExcelData } from '@/api/excelData'

export default {
  name: 'ReportList',
  components: {
    AreaSelect
  },
  data() {
    const validatePass = (rule, value, callback) => {
      if (value === '') {
        callback(new Error('请输入密码'))
      } else {
        if (value.length < 8 || value.length > 16) {
          callback(new Error('请输入8-16位的密码'))
        } else {
          callback()
        }
      }
    }
    const validatePass2 = (rule, value, callback) => {
      const that = this
      if (value === '') {
        callback(new Error('请再次输入密码'))
      } else if (value !== that.form1.password) {
        callback(new Error('两次输入密码不一致!'))
      } else {
        callback()
      }
    }
    return {
      json_fields: { // 导出Excel表格的表头设置
        '企业名称': '102_entName',
        '统一社会信用代码': '103_entCode',
        '法人代表': '104_legalPerson',
        '所在省代码': '105_provCode',
        '所在省名称': '106_provName',
        '所在市代码': '107_cityCode',
        '所在市名称': '108_cityName',
        '所在区代码': '109_distCode',
        '所在区名称': '110_distName',
        '注册地址': '111_regAddress',
        '注册时间': '112_regTime',
        '注册资本': '113_regCapital',
        '所属行业代码': '114_industryCode',
        '所属行业名称': '115_industryName',
        '所属行业第二级代码': '116_industrySecondCode',
        '所属行业第二级名称': '117_industrySecondName',
        '所属行业第三级代码': '118_industryThreeCode',
        '所属行业第三级名称': '119_industryThreeName',
        '所属行业第四级代码': '120_industryFourthCode',
        '所属行业第四级名称': '121_industryFourthName',
        '企业类型代码': '122_entTypeCode',
        '企业类型名称': '123_entTypeName',
        '企业规模代码': '124_entScaleCode',
        '企业规模名称': '125_entScaleName',
        '全职员工数量': '126_entNumber',
        '生产经营年限': '127_operationLife',
        '与现有小巨人企业存在控股关系': '128_entHolding',
        '同集团内有其他生产相似主导产品企业获得认定或申报': '129_entSimilar',
        '联系人姓名': '130_contactsName',
        '联系人电话': '131_contactsTel',
        '联系人手机': '132_contactsMobile',
        '通讯地址': '133_commAddress',
        '电子邮箱': '134_email',
        '邮编': '135_postalCode',
        '全职员工数量第1年': '138_employeesNumber1',
        '全职员工数量第2年': '139_employeesNumber2',
        '全职员工数量第3年': '140_employeesNumber3',
        '研发人员数量第1年': '141_developmentNumber1',
        '研发人员数量第2年': '142_developmentNumber2',
        '研发人员数量第3年': '143_developmentNumber3',
        '营业收入第1年': '144_businessIncome',
        '营业收入第2年': '145_businessIncome',
        '营业收入第3年': '146_businessIncome',
        '主营业务收入第1年': '147_mainIncome',
        '主营业务收入第2年': '148_mainIncome',
        '主营业务收入第3年': '149_mainIncome',
        '净利润总额第1年': '150_netProfits',
        '净利润总额第2年': '151_netProfits',
        '净利润总额第3年': '152_netProfits',
        '资产总额第1年': '153_assets',
        '资产总额第2年': '154_assets',
        '资产总额第3年': '155_assets',
        '负债总额第1年': '156_liabilities',
        '负债总额第2年': '157_liabilities',
        '负债总额第3年': '158_liabilities',
        '上缴税金第1年': '159_taxes',
        '上缴税金第2年': '160_taxes',
        '上缴税金第3年': '161_taxes',
        '新增股权融资总额第1年': '162_newFinancing',
        '新增股权融资总额第2年': '163_newFinancing',
        '新增股权融资总额第3年': '164_newFinancing',
        '研发费用总额第1年': '165_developmentCost',
        '研发费用总额第2年': '166_developmentCost',
        '研发费用总额第3年': '167_developmentCost',
        '税前利润总额第1年': '168_preTax',
        '税前利润总额第2年': '169_preTax',
        '税前利润总额第3年': '170_preTax',
        '企业从事特定细分市场时间': '171_subdivideTime',
        '主导产品名称（中文）': '172_productName',
        '从事该产品领域的时间（年）': '173_productTime',
        '主导产品类别代码': '174_productTypeCode',
        '主导产品类别名称': '175_productTypeName',
        '行业领军企业（3个以内）': '176_industryTop',
        '是否属于工业六基领域': '177_isIndustry',
        '勾选工业六基领域代码': '178_industryCode',
        '勾选工业六基领域名字': '179_industryName',
        '是否属于战略性新兴产业分类': '180_isRising',
        '勾选战略性新兴产业分类代码': '181_risingIndustryCode',
        '勾选战略性新兴产业分类名称': '182_risingIndustryName',
        '所属产业链代码': '183_industrialChainCode',
        '所属产业链名称': '184_industrialChainName',
        '在产业链供应链关键环节及关键领域“补短板”“锻长板”“填空白”取得实际成效': '185_isShort',
        '补短板的产品名称或填补国内（国际）空白的领域': '186_shortContent',
        '或填补国内（国际）空白的领域': '187_blankIndustry',
        '或替代进口的国外企业（或产品）名称': '188_alternativeProducts',
        '说明（是否在细分领域实现关键技术首创等情况，50字以内）': '189_technologicalInnovation',
        '主导产品是否属于中华老字号名录': '190_isChina',
        '主导产品是否为国内外知名大企业直接配套或服务关键产业链重点龙头企业': '191_isComplement',
        '企业主导产品是否属于制造强国重点领域': '192_isManufacture',
        '制造强国重点产业领域代码': '193_manufactureCode',
        '制造强国重点产业领域名称': '194_manufactureName',
        '企业主导产品是否属于网络强国重点领域': '195_isNet',
        '网络强国重点产业领域代码': '196_netCode',
        '网络强国重点产业领域名称': '197_netName',
        '知名大企业直接配套': '198_complementContent',
        '企业获得的管理体系认证情况（可多选）': '199_management',
        '如其他（请说明）': '200_managementOther',
        '是否获得省级以上质量奖荣誉': '201_provincialHonors',
        '国家级质量奖数量（项）': '202_nationalHonors',
        '省级质量奖数量（项）': '203_provincialAwards',
        '质量奖名称': '204_awardsName',
        '是否拥有自主品牌': '205_isBrand',
        '自有品牌数量（项）': '206_brandNumber',
        '自有品牌名称': '207_brandName',
        '省级以上著名品牌数量（项）': '208_provincialNumber',
        '省级以上著名品牌名称': '209_provincialName',
        '是否参与制修订标准': '210_isStandard',
        '参与国际标准数量（项）': '211_internationalNumber',
        '参与国家标准数量（项）': '212_nationalNumber',
        '参与行业标准数量（项）': '213_industryNumber',
        '参与标准名称（请填写代表性标准，不超过5项）': '214_standardName',
        '是否主持制修订标准': '215_isStandard2',
        '主持国际标准数量（项）': '216_internationalNumber2',
        '主持国家标准数量（项）': '217_nationalNumber2',
        '主持行业标准数量（项）': '218_industryNumber2',
        '主持标准名称（请填写代表性标准，不超过5项）': '219_standardName2',
        '核心业务采用信息系统支撑情况（可多选）': '220_information',
        '如核心业务其他（请说明）': '221_informationOther',
        '产品获得发达国家或地区权威机构认证情况(多选)': '222_authentication',
        '如产品获得其他（请说明）': '223_authenticationOther',
        '业务系统是否向云端迁移': '224_isCloud',
        '企业上云情况代码': '225_cloudCode',
        '企业上云情况名称': '226_cloudName',
        '是否拥有制造业与互联网融合试点示范项目': '227_isFuse',
        '数字化水平代码': '228_digitizationCode',
        '数字化水平名称': '229_digitizationName',
        '上一年数字化投入总额': '230_digitizationInvestment',
        '是否精细化管理方式': '231_refineManagement',
        '建议进一步选择精细化管理内容如：六四格玛管理、卓越绩效管理等': '232_refineSituation',
        '数字化技术使用情况': '234_digitalTechnology',
        '是否绿色制造': '236_greenMake',
        '是否绿色工厂': '237_greenFactory',
        '是否绿色产品': '238_greenProduct',
        '是否绿色供应链企业': '239_greenSupply',
        '是否绿色制造示范企业': '240_greenExample',
        '主导产品国际细分市场占有率（%）第1年': '241_productInternational1',
        '主导产品国际细分市场占有率（%）第2年': '242_productInternational2',
        '主导产品国际细分市场占有率（%）第3年': '243_productInternational3',
        '主导产品全国细分市场占有率（%）第1年': '244_productCountry',
        '主导产品全国细分市场占有率（%）第2年': '245_productCountry',
        '主导产品全国细分市场占有率（%）第3年': '246_productCountry',
        '主导产品出口额（万元）第1年': '247_productExport',
        '主导产品出口额（万元）第2年': '248_productExport',
        '主导产品出口额（万元）第3年': '249_productExport',
        '企业自有品牌个数（个）第1年': '250_brandNumbers',
        '企业自有品牌个数（个）第2年': '251_brandNumbers',
        '企业自有品牌个数（个）第3年': '252_brandNumbers',
        '企业自有品牌销售收入（万元）第1年': '253_brandIncome',
        '企业自有品牌销售收入（万元）第2年': '254_brandIncome',
        '企业自有品牌销售收入（万元）第3年': '255_brandIncome',
        '企业获得品牌授权、共享品牌个数': '256_brandCooperation',
        '企业拥有的名牌产品或驰名商标情况': '257_brandTrademark',
        '近三年获得过国家级科技奖励': '258_isNationalReward',
        '国家级获奖年份': '259_nationalYear',
        '国家级获奖名称': '260_nationalName',
        '国家级获奖排名': '261_nationalRanking',
        '近三年获得过省级科技奖励': '262_isProvincialReward',
        '省级获奖年份': '263_provincialYear',
        '省级获奖名称': '264_provincialName',
        '省级获奖排名': '265_provincialRanking',
        '近三年是否进入“创客中国”中小企业创新创业大赛全国500强企业组名单': '266_isMakerReward',
        '大赛年份': '267_makerYear',
        '大赛排名': '268_makerRanking',
        '是否高新技术企业': '269_isHighTech',
        '是否国家级技术创新示范企业': '270_isCountryInnovate',
        '是否知识产权优势企业': '271_isIntellectualAdvantages',
        '是否知识产权示范企业': '272_isIntellectualDemonstration',
        '是否拥有经认定的省部级以上研发机构': '273_isProvinceDevelopment',
        '技术研究院代码': '274_technicalResearchInstituteCode',
        '技术研究院名称': '275_technicalResearchInstituteName',
        '企业技术中心代码': '276_enterpriseTechnologyCenterCode',
        '企业技术中心名称': '277_enterpriseTechnologyCenterName',
        '企业工程中心代码': '278_enterpriseEngineeringCenterCode',
        '企业工程中心名称': '279_enterpriseEngineeringCenterName',
        '工业设计中心代码': '280_industrialDesignCenterCode',
        '工业设计中心名称': '281_industrialDesignCenterName',
        '院士专家工作站': '282_academicianWorkstation',
        '博士后工作站': '283_doctoralWorkstation',
        '企业自填研发机构名称': '284_otherCenterName',
        '其他研发机构级别代码': '285_otherCenterLevelCode',
        '其他研发机构级别名称': '286_otherCenterLevelName',
        '合作院校机构名称（3个以内）': '287_schoolName',
        'I类知识产权总数（项）': '288_intellectualNumber',
        'Ⅰ类高价值知识产权（项）': '289_highIntellectual',
        '自主研发的Ⅰ类知识产权（项）': '290_autonomyIntellectual',
        '发明专利（项）': '291_inventionPatent',
        '植物新品种（项）': '292_newPlantVariety',
        '国家级农作物品种（项）': '293_nationalCropVarieties',
        '国家新药（项）': '294_nationalNewDrugs',
        '集成电路布图设计专有权 （项）': '295_integratedCircuit',
        'Ⅱ类知识产权（项）': '296_secondIntellectual',
        '软件著作权（项）': '297_softwareCopyright',
        '实用新型专利（项）': '298_utilityPatent',
        '外观设计专利（项）': '299_appearanceDesign',
        '累计有效发明专利量': '300_effectiveInvention',
        '海外发明专利授权量': '301_overseasInvention',
        '企业获得首台（套）装备情况': '302_firstEquipment',
        '企业获得首批次材料情况': '303_firstMaterial',
        '企业获得首版次软件情况': '304_firstSoft',
        '最新企业估值（万元）': '305_entValuation',
        '上市情况代码': '306_listingCode',
        '上市情况名称': '307_listingName',
        '股票代码': '308_stockCode',
        '上市进程代码': '309_listingProcessCode',
        '上市进程名称': '310_listingProcessName',
        '拟上市地代码': '311_listingPlaceCode',
        '拟上市地名称': '312_listingPlaceName',
        '近3年是否申请银行贷款': '313_bankLoans',
        '信贷满足率': '314_creditSatisfaction',
        '所获得贷款主要用于下面哪些事项': '315_loanPurpose',
        '下一步融资计划': '316_nextPlan',
        '资金需求额（万元）': '317_fundsNumber',
        '计划融资方式代码': '318_financingMethodCode',
        '计划融资方式名称': '319_financingMethodName',
        '境外并购情况': '335_overseasMergers',
        '境外设立分公司情况': '338_overseasBranches',
        '境外设立研发机构情况': '341_overseasResearch',
        '向境外支付专利使用费': '344_overseasPatent',
        '近2年是否承担过国家重大科技项目': '347_nationalProject',
        '近2年是否获得过国家级技术创新类项目': '350_nationalInnovate',
        '研发费用总额占营业收入总额比重第1年': '研发比重上三年',
        '研发费用总额占营业收入总额比重第2年': '研发比重上二年',
        '研发费用总额占营业收入总额比重第3年': '研发比重上一年',
        '资产负债率第1年': '资产负债率上三年',
        '资产负债率第2年': '资产负债率上二年',
        '资产负债率第3年': '资产负债率上一年',
        '近两年主营业务收入平均增长率': '近两年主营业务收入平均增长率',
        '发展评分': '400_target_score',
        '创新型评分': '401_innovate_score',
        '创新型评测': '402_innovate_content',
        '创新型不符合原因': '403_innovate_no',
        '专精特新评分': '404_refinement_score',
        '专精特新评测': '405_refinement_content',
        '专精特不符合原因': '406_refinement_no',
        '小巨人评测': '407_giant_content',
        '小巨人不符合原因': '408_giant_no'

      },
      json_data: [],
      fullscreenLoading: false,
      formSearch: {
        year: 0,
        areaSelect1: ''
      },
      currentPage: 1,
      limit: 10,
      total: 0,
      stateState: false,
      countState: false,
      passState: false,
      addUrl: '/system/manageAdd',
      list: null,
      listLoading: true,
      index: '',
      username: '',
      form1: {
        id: '',
        password: '',
        aPassword: ''
      },
      form2: {
        id: '',
        state: ''
      },
      rules1: {
        password: [
          { validator: validatePass, trigger: 'blur' }
        ],
        aPassword: [
          { validator: validatePass2, trigger: 'blur' }
        ]
      },
      rules2: {
        state: [
          { required: true, message: '请选启用或禁用', trigger: 'change' }
        ]
      }
    }
  },
  computed: {
    ...mapGetters([
      'roles'
    ])
  },
  role: '',

  watch: {
    // json_data(val, oldV) {
    //   console.log(val.length, oldV.length)
    //   if (val.length > 0) {
    //     setTimeout(() => { this.$refs.downloadBtn.$el.click() }, 10) // 监听导出数据，判断满足条件等一下下触发导出点击事件
    //   }
    // }
  },

  created() {
    this.fetchData()
  },
  methods: {
    dowmloadExcel() {
      this.fullscreenLoading = true
      var cityC = ''
      if (this.formSearch.areaSelect1.cityCode === '0') { cityC = '' } else { cityC = this.formSearch.areaSelect1.cityCode }
      getExcelData({ cityCode: cityC, year: this.formSearch.year + '' }).then(response => {
        if (response.result === 0) {
          this.$message({
            message: response.msg, type: 'error'
          })
        }
        if (response.result === 1) {
          if (response.data) {
            this.json_data = response.data
            this.json_fields = JSON.parse(JSON.stringify(this.json_fields).replace(/第3年/g, this.formSearch.year).replace(/第2年/g, this.formSearch.year - 1).replace(/第1年/g, this.formSearch.year - 2))
          }
        }
        this.fullscreenLoading = false
      })
    },
    fetchData() {
      this.listLoading = true
      var cityC = ''
      if (this.formSearch.areaSelect1.cityCode === '0') { cityC = '' } else { cityC = this.formSearch.areaSelect1.cityCode }
      questionnaireList({ provCode: this.formSearch.areaSelect1.areaCode, cityCode: cityC }).then(response => {
        if (response.result === 1) {
          console.log(response)
          this.total = response.data.total
          this.list = response.data.list
          this.listLoading = false
        }
        this.listLoading = false
      }).catch(() => {
        this.listLoading = false
        this.$message({
          message: '加载失败', type: 'warning'
        })
      })
    },
    searchFetchData() {
      this.fetchData()
    },
    searchReset() {
      this.formSearch.provCode = ''
      this.formSearch.provName = ''
      this.formSearch.cityCode = ''
      this.formSearch.cityName = ''
      this.formSearch.areaSelect1 = []
      this.$set(this.formSearch.areaSelect1, 'areaCode', this.formSearch.provCode)
      this.$set(this.formSearch.areaSelect1, 'areaName', this.formSearch.provName)
      this.$set(this.formSearch.areaSelect1, 'cityCode', this.formSearch.cityCode)
      this.$set(this.formSearch.areaSelect1, 'cityName', this.formSearch.cityName)
      this.$refs.areaselect.resetForm()
      this.formSearch.entName = ''
      this.fetchData()
    },
    getAreaSelect2(msg) { // msg就是传过来的数据了  这只是个形参  名字可以随意
      this.formSearch.areaSelect1 = msg// 然后将数据赋值给chindVal
    },
    handleCurrentChange(val) {
      this.currentPage = val
      this.fetchData()
    },
    handleSizeChange(val) {
      this.limit = val
      this.currentPage = 1
      this.fetchData()
    },
    updateData(userId) {
      console.log(this.currentPage)
      this.$router.push({ name: 'EntContent', query: { userId: userId, pageN: this.currentPage }})
    },
    toReport(userId, cityCode) {
      this.$router.push({ name: 'reportNewPdf', query: { userId: userId, cityCode: cityCode }})
    },
    showState(index) {
      this.index = index
      this.form2.state = this.list[this.index].state
      this.stateState = true
    },
    onClose1() {
      this.form1.id = ''
      this.form1.password = ''
      this.form1.aPassword = ''
    },
    showPass(index) {
      this.index = index
      this.passState = true
    },
    handleDown(userId, cityCode) {
      console.log(this.list)
      for (var i; i < 1; i++) {
        // this.$router.push({ name: 'EntReportAll', query: { userId: userId, cityCode: cityCode }})
      }
      // this.list
    }

  }
}
</script>

